import API from '@/services/api'
import {request, METHOD} from '@/utils/request'

/**
 * 查询备份文件列表
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function queryList(params) {
  return request(API.DATA_SOURCE_QUERY_LIST, METHOD.POST, params)
}

/**
 * 查询备份表列表（Tree）
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function queryTableTree(params) {
  return request(API.DATA_SOURCE_QUERY_TABLE_TREE, METHOD.POST, params)
}

/**
 * 查询数据库表列表（TreeSelect）
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function queryTableTreeSelect() {
  return request(API.DATA_SOURCE_QUERY_TABLE_TREE_SELECT, METHOD.POST)
}

/**
 * 备份数据库
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function backup(params) {
  return request(API.DATA_SOURCE_BACKUP, METHOD.POST, params)
}

/**
 * 还原数据库
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function restore(params) {
  return request(API.DATA_SOURCE_RESTORE, METHOD.POST, params)
}

/**
 * 删除备份文件
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function del(params) {
  return request(API.DATA_SOURCE_DELETE, METHOD.POST, params)
}

export default {
  queryList,
  queryTableTree,
  queryTableTreeSelect,
  backup,
  restore,
  del
}
